// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2023-2023. All rights reserved.
 * Author: Huawei OS Kernel Lab
 * Create: Thu Aug 15 16:14:23 2023
 */

#include <liblinux/unimpl.h>

/* net/core/filter.c */
LIBLINUX_EXPORTED_UNIMPL_RET(sk_filter_trim_cap, int, 0);
LIBLINUX_EXPORTED_UNIMPL_RET(xdp_do_generic_redirect, int, 0);
LIBLINUX_EXPORTED_UNIMPL(bpf_prog_change_xdp);
LIBLINUX_EXPORTED_UNIMPL(bpf_warn_invalid_xdp_action);
LIBLINUX_EXPORTED_UNIMPL(sk_filter_uncharge);
LIBLINUX_EXPORTED_UNIMPL_RET(xdp_do_redirect, int, 0);
LIBLINUX_EXPORTED_UNIMPL(xdp_do_flush);
LIBLINUX_EXPORTED_UNIMPL_RET(sk_detach_filter, int, 0);
LIBLINUX_EXPORTED_UNIMPL_RET(copy_bpf_fprog_from_user, int, 0);
LIBLINUX_EXPORTED_UNIMPL_RET(sk_filter_charge, bool, 0);
LIBLINUX_UNIMPL_RET(sk_get_filter, int, 0);
LIBLINUX_UNIMPL_RET(sk_attach_bpf, int, 0);
LIBLINUX_UNIMPL_RET(sk_reuseport_attach_filter, int, 0);
LIBLINUX_UNIMPL_RET(sk_reuseport_attach_bpf, int, 0);
LIBLINUX_EXPORTED_UNIMPL_RET(sk_attach_filter, int, 0);

/* net/ipv4/devinet.c */
LIBLINUX_EXPORTED_UNIMPL_RET(register_inetaddr_notifier, int, 0);
LIBLINUX_EXPORTED_UNIMPL_RET(unregister_inetaddr_notifier, int, 0);

/* net/ipv6/addrconf_core.c */
LIBLINUX_EXPORTED_UNIMPL_RET(register_inet6addr_notifier, int, 0);
LIBLINUX_EXPORTED_UNIMPL_RET(unregister_inet6addr_notifier, int, 0);

/* net/ethtool/netlink.c */
LIBLINUX_EXPORTED_UNIMPL(ethtool_notify);

/* net/core/sock_diag.c */
LIBLINUX_EXPORTED_UNIMPL(sock_diag_broadcast_destroy);
LIBLINUX_UNIMPL_RET(__sock_gen_cookie, unsigned int, 0);

/* net/core/sock_reuseport.c */
LIBLINUX_EXPORTED_UNIMPL(reuseport_detach_sock);
LIBLINUX_EXPORTED_UNIMPL_RET(reuseport_detach_prog, int, 0);

/* net/core/scm.c */
LIBLINUX_EXPORTED_UNIMPL_RET(put_cmsg, int, 0);
LIBLINUX_EXPORTED_UNIMPL(put_cmsg_scm_timestamping64);
LIBLINUX_EXPORTED_UNIMPL(put_cmsg_scm_timestamping);
LIBLINUX_EXPORTED_UNIMPL(__scm_destroy);

#ifdef CONFIG_LIBLINUX_NET_STACK
LIBLINUX_EXPORTED_UNIMPL_RET(sock_setsockopt, int, 0);
LIBLINUX_EXPORTED_UNIMPL_RET(sock_getsockopt, int, 0);
#endif

/* net/ethtool/cabletest.c */
#ifdef CONFIG_ETHTOOL_NETLINK
LIBLINUX_EXPORTED_UNIMPL(ethnl_cable_test_free);
LIBLINUX_EXPORTED_UNIMPL(ethnl_cable_test_finished);
LIBLINUX_EXPORTED_UNIMPL_RET(ethnl_cable_test_alloc, int, 0);
#endif

/* lib/kobject_uevent.c */
LIBLINUX_EXPORTED_UNIMPL_RET(kobject_uevent_net_broadcast_untagged, int, 0);

/* fs/fcntl.c */
LIBLINUX_UNIMPL_RET(send_sigurg, int, 0);

#ifndef CONFIG_LIBLINUX_NET_STACK
/* net/core/dst.c */
LIBLINUX_EXPORTED_UNIMPL_RET(metadata_dst_alloc, void *, 0);
#endif
